using Sinacor.Servico.Bovespa.Parametro.Service.DataContract.Response;
using System.Collections.Generic;

namespace Sinacor.Servico.Bovespa.Parametro.Service.ServiceImplementation.Translator.BusinessEntityToDataContract
{
	public class ParametroBolsa 
    {

        public ParametroBolsa() { }

		public DataContract.Response.ParametroBolsaResponse ToParametroBolsaResponse(BusinessEntity.ParametroBolsa entity)
        {
            DataContract.Response.ParametroBolsaResponse to = new Sinacor.Servico.Bovespa.Parametro.Service.DataContract.Response.ParametroBolsaResponse();
            to.AgrupaNota = entity.AgrupaNota;
            to.BaseLiquido = entity.BaseLiquido;
            to.CaminhoNota = entity.CaminhoNota;
            to.Comissao = entity.Comissao;
            to.Correspondente = entity.Correspondente;
            to.EnviaAgente = entity.EnviaAgente;
            to.EnviaCarteira = entity.EnviaCarteira;
            to.IntegraContabilidade = entity.IntegraContabilidade;
            to.IntegraContasCorrentes = entity.IntegraContasCorrentes;
            to.IntegraCustodia = entity.IntegraCustodia;
            to.IntegraTesouraria = entity.IntegraTesouraria;
            to.LiquidoNota = entity.LiquidoNota;
            to.Mensagem = entity.Mensagem;
            to.NumeraNota = entity.NumeraNota;
            to.SemOperacao = entity.SemOperacao;
            to.UltimaNotaEmitida = entity.UltimaNotaEmitida;
            to.ZeraNota = (DataContract.Enum.TipoPeriodo) entity.ZeraNota;

			return to;
		}

		public List<DataContract.Response.TipoNotaResponse> ToTipoNotaResponse(List<BusinessEntity.TipoNota> entityList)
        {
            List<Sinacor.Servico.Bovespa.Parametro.Service.DataContract.Response.TipoNotaResponse> to = new List<TipoNotaResponse>();
            foreach (BusinessEntity.TipoNota par in entityList)
            {
                to.Add(ToTipoNotaResponse(par));
            }
            return to; 
		}

		public List<DataContract.Response.ParametroBolsaResponse> ToParametroBolsaResponse(List<BusinessEntity.ParametroBolsa> entityList)
        {
            List<Sinacor.Servico.Bovespa.Parametro.Service.DataContract.Response.ParametroBolsaResponse> to = new List<ParametroBolsaResponse>();
            foreach (BusinessEntity.ParametroBolsa par in entityList)
            {
                to.Add(ToParametroBolsaResponse(par));
            }
            return to; 
		}

		public DataContract.Response.TipoNotaResponse ToTipoNotaResponse(BusinessEntity.TipoNota entity)
        {
            DataContract.Response.TipoNotaResponse to = new DataContract.Response.TipoNotaResponse();

            to.AgenteDiaCredito = entity.AgenteDiaCredito;
            to.AgenteDiaDebito = entity.AgenteDiaDebito;
            to.AgenteEstornoCredito = entity.AgenteEstornoCredito;
            to.AgenteEstornoDebito = entity.AgenteEstornoDebito;

            to.AjusteNegocioDiaCredito = entity.AjusteNegocioDiaCredito;
            to.AjusteNegocioDiaDebito = entity.AjusteNegocioDiaDebito;
            to.AjusteNegocioEstornoCredito = entity.AjusteNegocioEstornoCredito;
            to.AjusteNegocioEstornoDebito = entity.AjusteNegocioEstornoDebito;

            to.AjustePosicaoDiaCredito = entity.AjustePosicaoDiaCredito;
            to.AjustePosicaoDiaDebito = entity.AjustePosicaoDiaDebito;
            to.AjustePosicaoEstornoCredito = entity.AjustePosicaoEstornoCredito;
            to.AjustePosicaoEstornoDebito = entity.AjustePosicaoEstornoDebito;

            to.NumeroDiasLiquidacao = entity.NumeroDiasLiquidacao;
            to.Cpmf = entity.Cpmf;
            to.DayTradeDiaCredito = entity.DayTradeDiaCredito;
            to.DayTradeDiaDebito = entity.DayTradeDiaDebito;
            to.DayTradeEstornoCredito = entity.DayTradeEstornoCredito;
            to.DayTradeEstornoDebito = entity.DayTradeEstornoDebito;

            to.DescricaoTipoNota = entity.DescricaoTipoNota;
            to.IrOperacoesDiaDebito = entity.IrOperacoesDiaDebito;
            to.IrOperacoesEstornoCredito = entity.IrOperacoesEstornoCredito;
            to.NotaCorretagemDiaCredito = entity.NotaCorretagemDiaCredito;

            to.NotaCorretagemDiaDebito = entity.NotaCorretagemDiaDebito;
            to.NotaCorretagemEstornoCredito = entity.NotaCorretagemEstornoCredito;
            to.NotaCorretagemEstornoDebito = entity.NotaCorretagemEstornoDebito;
            to.TipoNota = entity.CodigoTipoNota;

			return to;
		}
	}
}